{
 "cells": [
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-10-04T11:10:43.388693Z",
     "start_time": "2025-10-04T11:10:43.383041Z"
    }
   },
   "source": [
    "from sklearn.datasets import load_iris\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import torch\n",
    "\n",
    "# 加载数据\n",
    "iris = load_iris()\n",
    "X = iris.data   # shape (150, 4)\n",
    "y = iris.target # shape (150,)\n",
    "\n",
    "print(iris.target_names)\n",
    "\n",
    "# 标准化特征\n",
    "scaler = StandardScaler()\n",
    "X = scaler.fit_transform(X)\n",
    "\n",
    "# 拆分训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
    "\n",
    "# 转成 PyTorch Tensor\n",
    "X_train = torch.tensor(X_train, dtype=torch.float32)\n",
    "X_test = torch.tensor(X_test, dtype=torch.float32)\n",
    "y_train = torch.tensor(y_train, dtype=torch.long) # 分类任务用 long 类型\n",
    "y_test = torch.tensor(y_test, dtype=torch.long)\n",
    "\n",
    "print(X_train.shape)\n",
    "print(y_train.shape)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['setosa' 'versicolor' 'virginica']\n",
      "torch.Size([120, 4])\n",
      "torch.Size([120])\n"
     ]
    }
   ],
   "execution_count": 115
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-04T11:10:43.395979Z",
     "start_time": "2025-10-04T11:10:43.393207Z"
    }
   },
   "cell_type": "code",
   "source": [
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "train_dataset = TensorDataset(X_train, y_train)\n",
    "test_dataset  = TensorDataset(X_test, y_test)\n",
    "train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)\n",
    "test_loader  = DataLoader(test_dataset, batch_size=16, shuffle=False)\n"
   ],
   "id": "195bebfa592736ee",
   "outputs": [],
   "execution_count": 116
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-04T11:10:43.404647Z",
     "start_time": "2025-10-04T11:10:43.401832Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch.nn as nn\n",
    "\n",
    "class Net(nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.net = nn.Sequential(\n",
    "            nn.Linear(4, 64),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(64, 64),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(64, 3),\n",
    "        )\n",
    "    def forward(self, x):\n",
    "        return self.net(x)\n",
    "\n",
    "model = Net()\n"
   ],
   "id": "d57ac06e4678331b",
   "outputs": [],
   "execution_count": 117
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-04T11:10:43.410661Z",
     "start_time": "2025-10-04T11:10:43.408274Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch.optim as optim\n",
    "\n",
    "optimizer = optim.Adam(model.parameters(), lr=0.001)\n",
    "criterion = nn.CrossEntropyLoss()"
   ],
   "id": "2c9f475ba60e6bf2",
   "outputs": [],
   "execution_count": 118
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-10-04T11:10:43.700998Z",
     "start_time": "2025-10-04T11:10:43.415066Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "\n",
    "epochs = 20\n",
    "first_point = True  # 标记是否是第一个点\n",
    "\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in train_loader:\n",
    "        y_pred = model(x_batch)\n",
    "        loss = criterion(y_pred, y_batch)\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "    # 每个 epoch 计算一次测试准确率\n",
    "    with torch.no_grad():\n",
    "        y_test_pred = model(X_test)\n",
    "        y_test_pred = torch.argmax(y_test_pred, dim=1)\n",
    "        accuracy = (y_test_pred == y_test).float().mean().item()\n",
    "        print(f\"Epoch {epoch+1}, Accuracy: {accuracy:.4f}\")\n",
    "\n",
    "        # 绘制当前点\n",
    "        if first_point:\n",
    "            plt.scatter(epoch+1, accuracy, label=\"Accuracy\", color='blue')\n",
    "            first_point = False\n",
    "        else:\n",
    "            plt.scatter(epoch+1, accuracy, color='blue')\n",
    "\n",
    "plt.xlabel(\"Epoch\")\n",
    "plt.ylabel(\"Accuracy\")\n",
    "plt.title(\"Test Accuracy Over Epochs\")\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()\n"
   ],
   "id": "80602f0c292afbdb",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1, Accuracy: 0.8333\n",
      "Epoch 2, Accuracy: 0.9333\n",
      "Epoch 3, Accuracy: 0.8667\n",
      "Epoch 4, Accuracy: 0.8667\n",
      "Epoch 5, Accuracy: 0.8333\n",
      "Epoch 6, Accuracy: 0.9000\n",
      "Epoch 7, Accuracy: 0.9000\n",
      "Epoch 8, Accuracy: 0.9333\n",
      "Epoch 9, Accuracy: 0.9333\n",
      "Epoch 10, Accuracy: 0.9333\n",
      "Epoch 11, Accuracy: 0.9333\n",
      "Epoch 12, Accuracy: 0.9667\n",
      "Epoch 13, Accuracy: 1.0000\n",
      "Epoch 14, Accuracy: 1.0000\n",
      "Epoch 15, Accuracy: 1.0000\n",
      "Epoch 16, Accuracy: 1.0000\n",
      "Epoch 17, Accuracy: 1.0000\n",
      "Epoch 18, Accuracy: 1.0000\n",
      "Epoch 19, Accuracy: 1.0000\n",
      "Epoch 20, Accuracy: 1.0000\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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9Rdrrb+MqV7WWjXq5fcgGYuS3YyzZmmfsN2iRfEx2OrYzbhz584yH/P09IRKpYKJiQm6dOlS5uEphUKBJUuWYMmSJaU+PmLECIwYMUKrberUqZq/IyMjERkZqbOcj48Pzp8/r9UmJOczubq6YvPmzWXWAACpqano3Lkznn766XL7ERERMSDVUgEBwPDh1ftjg8bi3r17+Ouvv/D555/j3XffNfR0iIioDmBAqsVMTVHll/Ibo9DQUKxfvx4jRozg1WtERFQhDEhU761evRqrV6829DSIiKgOqVPfg0RERERUExiQqpH0RGKqO7jtiIiMGwNSNSj5GvOK/iAe1T4l285YfpaCiIi08RykamBqagobGxtkZGQAAKysrCCTfnd6HaFWq1FUVISCggK9f1eurlGr1SgsLERWVhYyMzNhY2MDU142SERklBiQqknJD9+WhKS6SgiB+/fvw9LSss6GvIp6uNYmTZqU++PFRERUvzEgVROZTAZHR0c0b9681B9lrSuUSiUOHjyIvn371vvDTSW1Dhw4EAqFwtDTISIiA2JAqmampqZ1+jCNqakpHjx4AIVCUe8DUkmtdXl7ERFR1ajfJ5UQERERVQIDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkQQDEhEREZEEAxIRERGRBAMSERERkYTBA9Ly5cvh5uYGhUIBb29vnDhxosy+SqUSixcvhru7OxQKBTw8PJCQkKDVx83NDTKZTOcWEhKi6dO/f3+dx6dPn15tNRIREVHdYtCAFB8fj7CwMERERODkyZPw8PCAr68vMjIySu0fHh6OL7/8EsuWLcP58+cxffp0jBw5EqdOndL0+eWXX5CWlqa5JSYmAgBeeOEFrbGmTp2q1e/DDz+svkKJiIioTjFoQFqyZAmmTp2K4OBgdOzYEStXroSVlRViYmJK7b9mzRq89dZb8PPzQ+vWrTFjxgz4+fnhk08+0fSxs7ODg4OD5vb999/D3d0d/fr10xrLyspKq5+1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gLQ0wNER6NOn6vbsVPf4RETGyOABicgYmJoC/fvX3fGJiIzNY31RJBEREVF9xIBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCRh8IC0fPlyuLm5QaFQwNvbGydOnCi3f3R0NNq1awdLS0u4uLhgzpw5KCgo0Dzu5uYGmUymcwsJCdH06d+/v87j06dPr7YaiYiIqG4xM+TK4+PjERYWhpUrV8Lb2xvR0dHw9fXFpUuX0Lx5c53+69atw7x58xATE4NevXrhjz/+wKRJkyCTybBkyRIAwC+//AKVSqVZ5ty5cxg0aBBeeOEFrbGmTp2KxYsXa+5bWVlVU5VERERU1xg0IC1ZsgRTp05FcHAwAGDlypX44YcfEBMTg3nz5un0P3LkCJ555hmMHz8eQPHeonHjxuH48eOaPnZ2dlrLfPDBB3B3d0e/fv202q2srODg4FDVJREREVE9YLCAVFRUhOTkZMyfP1/TZmJiAh8fHxw9erTUZXr16oW1a9fixIkT8PLywrVr1/Djjz/ixRdfLHMda9euRVhYGGQymdZjcXFxWLt2LRwcHODv748FCxaUuxepsLAQhYWFmvs5OTkAAKVSCaVSWeG665qS2upzjSWMqVbAuOplrfWXMdXLWqt27EeRCSFEla+9Am7dugVnZ2ccOXIEPXv21LTPnTsXBw4c0Nor9LDPPvsMr7/+OoQQePDgAaZPn44VK1aU2nfjxo0YP348UlJS4OTkpGn/6quv4OrqCicnJ5w9exZvvvkmvLy8sHXr1jLnGxkZiUWLFum0r1u3jofniIiI6oj8/HyMHz8ed+/ehbW1dZn96lRA2r9/P8aOHYt3330X3t7euHLlCmbNmoWpU6diwYIFOv19fX0hl8uxc+fOcueyd+9eDBw4EFeuXIG7u3upfUrbg+Ti4oLMzMxyn+C6TqlUIjExEYMGDYK5ubmhp1OtjKlWwLjqZa31lzHVy1qrRk5ODmxtbR8ZkAx2iM3W1hampqa4ffu2Vvvt27fLPDdowYIFePHFFzFlyhQAQOfOnZGXl4dp06bh7bffhonJvxflXb9+HXv27Cl3r1AJb29vACg3IFlYWMDCwkKn3dzcvN6/UAHjqRMwrloB46qXtdZfxlQva338MSvCYJf5y+VyeHp6IikpSdOmVquRlJSktUfpYfn5+VohCABMTU0BANIdYbGxsWjevDmGDRv2yLmcPn0aAODo6KhPCURERFRPGfQqtrCwMAQFBaF79+7w8vJCdHQ08vLyNFe1TZw4Ec7OzoiKigIA+Pv7Y8mSJejWrZvmENuCBQvg7++vCUpAcdCKjY1FUFAQzMy0S7x69SrWrVsHPz8/NGvWDGfPnsWcOXPQt29fdOnSpeaKJyIiolrLoAFpzJgxuHPnDhYuXIj09HR07doVCQkJsLe3BwCkpKRo7TEKDw+HTCZDeHg4UlNTYWdnB39/f7z33nta4+7ZswcpKSl46aWXdNYpl8uxZ88eTRhzcXFBYGAgwsPDq7dYIiIiqjMMGpAAIDQ0FKGhoaU+tn//fq37ZmZmiIiIQERERLljDh48WOeQWwkXFxccOHCgUnMlIiIi42DwnxohIiIiqm0YkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkDH4VG9UfKhVw6BCQlgY4OgJ9+gAPfT1VrR+fiIioBAMSVYmtW4FZs4CbN/9ta9ECWLoUCAio/eMTERE9jIfY6LFt3QqMGqUdXgAgNbW4vQI/h2fQ8YmIiKQYkOixqFTFe3ZK+17OkrbZs4v71cbxiYiISsOARI/l0CHdPTsPEwK4caO4X20cn4iIqDQMSPRY0tKqtl9Nj09ERFQaBiR6LI6OVduvpscnIiIqDQMSPZY+fYqvJpPJSn9cJgNcXIr71cbxiYiISsOARI/F1LT4UntAN8SU3I+Orvz3FVX3+ERERKVhQKLHFhAAbN4MODtrt7doUdz+uN9TVN3jExERSfGLIqlKBAQAw4dX3zddV/f4RERED2NAoipjagr07193xyciIirBQ2xEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgxIRERERBIMSEREREQSDEhEREREEgYPSMuXL4ebmxsUCgW8vb1x4sSJcvtHR0ejXbt2sLS0hIuLC+bMmYOCggLN45GRkZDJZFq39u3ba41RUFCAkJAQNGvWDA0bNkRgYCBu375dLfURERFR3WPQgBQfH4+wsDBERETg5MmT8PDwgK+vLzIyMkrtv27dOsybNw8RERG4cOECVq1ahfj4eLz11lta/Tp16oS0tDTN7fDhw1qPz5kzBzt37sSmTZtw4MAB3Lp1CwEBAdVWJxEREdUtZoZc+ZIlSzB16lQEBwcDAFauXIkffvgBMTExmDdvnk7/I0eO4JlnnsH48eMBAG5ubhg3bhyOHz+u1c/MzAwODg6lrvPu3btYtWoV1q1bh2effRYAEBsbiw4dOuDYsWPo0aNHVZZIREREdZDBAlJRURGSk5Mxf/58TZuJiQl8fHxw9OjRUpfp1asX1q5dixMnTsDLywvXrl3Djz/+iBdffFGr3+XLl+Hk5ASFQoGePXsiKioKLVu2BAAkJydDqVTCx8dH0799+/Zo2bIljh49WmZAKiwsRGFhoeZ+Tk4OAECpVEKpVFbuSagDSmqrzzWWMKZaAeOql7XWX8ZUL2ut2rEfxWABKTMzEyqVCvb29lrt9vb2uHjxYqnLjB8/HpmZmejduzeEEHjw4AGmT5+udYjN29sbq1evRrt27ZCWloZFixahT58+OHfuHBo1aoT09HTI5XLY2NjorDc9Pb3M+UZFRWHRokU67bt374aVlZUelddNiYmJhp5CjTGmWgHjqpe11l/GVC9rfTz5+fkV6mfQQ2z62r9/P95//3188cUX8Pb2xpUrVzBr1iy88847WLBgAQBg6NChmv5dunSBt7c3XF1dsXHjRkyePLnS654/fz7CwsI093NycuDi4oLBgwfD2tq68kXVckqlEomJiRg0aBDMzc0NPZ1qZUy1AsZVL2utv4ypXtZaNUqOAD2KwQKSra0tTE1Nda4eu337dpnnDy1YsAAvvvgipkyZAgDo3Lkz8vLyMG3aNLz99tswMdE959zGxgZt27bFlStXAAAODg4oKipCdna21l6k8tYLABYWFrCwsNBpNzc3r/cvVMB46gSMq1bAuOplrfWXMdXLWh9/zIow2FVscrkcnp6eSEpK0rSp1WokJSWhZ8+epS6Tn5+vE4JMTU0BAEKIUpe5d+8erl69CkdHRwCAp6cnzM3NtdZ76dIlpKSklLleIiIiMi4GPcQWFhaGoKAgdO/eHV5eXoiOjkZeXp7mqraJEyfC2dkZUVFRAAB/f38sWbIE3bp10xxiW7BgAfz9/TVB6fXXX4e/vz9cXV1x69YtREREwNTUFOPGjQMANG7cGJMnT0ZYWBiaNm0Ka2trzJw5Ez179uQVbERERATAwAFpzJgxuHPnDhYuXIj09HR07doVCQkJmhO3U1JStPYYhYeHQyaTITw8HKmpqbCzs4O/vz/ee+89TZ+bN29i3LhxyMrKgp2dHXr37o1jx47Bzs5O0+fTTz+FiYkJAgMDUVhYCF9fX3zxxRc1VzgRERHVagY/STs0NBShoaGlPrZ//36t+2ZmZoiIiEBERESZ423YsOGR61QoFFi+fDmWL1+u11yJiIjIOBj8p0aIiIiIahsGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGJCIiIiIJBiQiIiIiCQYkIiIiIgkGpFpEpQL27wfWry/+V6Uy9IyMh0oFHD5c/Pfhw3zuiYiMHQNSLbF1K+DmBgwYAIwfX/yvm1txO1Wvkud+2LDi+8OG8bknIjJ2DEi1wNatwKhRwM2b2u2pqcXt/KCuPnzuiYioNAxIBqZSAbNmAULoPlbSNns2D/lUBz73RERUFgYkAzt0SHfvxcOEAG7cKO5HVYvPPRERlYUBycDS0qq2H1Ucn3siIioLA5KBOTpWbT+qOD73RERUFgYkA+vTB2jRApDJSn9cJgNcXIr7UdXic09ERGVhQDIwU1Ng6dLiv6Uf1CX3o6OL+1HV4nNPRERlYUCqBQICgM2bAWdn7fYWLYrbAwIMMy9jwOeeiIhKY2boCVCxgABg+PDiK6bS0orPe+nTh3svakLJc3/wIJCTA/zwA9C3L597IiJjxoBUi5iaAv37G3oWxsnUFOjdG/jxx+J/GY6IiIwbD7ERERERSTAgEREREUkwIBERERFJMCARERERSTAgEREREUkYPCAtX74cbm5uUCgU8Pb2xokTJ8rtHx0djXbt2sHS0hIuLi6YM2cOCgoKNI9HRUXh6aefRqNGjdC8eXOMGDECly5d0hqjf//+kMlkWrfp06dXS31ERERU9xg0IMXHxyMsLAwRERE4efIkPDw84Ovri4yMjFL7r1u3DvPmzUNERAQuXLiAVatWIT4+Hm+99Zamz4EDBxASEoJjx44hMTERSqUSgwcPRl5entZYU6dORVpamub24YcfVmutREREVHcY9HuQlixZgqlTpyI4OBgAsHLlSvzwww+IiYnBvHnzdPofOXIEzzzzDMaPHw8AcHNzw7hx43D8+HFNn4SEBK1lVq9ejebNmyM5ORl9+/bVtFtZWcHBwaE6yiIiIqI6zmB7kIqKipCcnAwfH59/J2NiAh8fHxw9erTUZXr16oXk5GTNYbhr167hxx9/hJ+fX5nruXv3LgCgadOmWu1xcXGwtbXFk08+ifnz5yM/P/9xSyIiIqJ6wmB7kDIzM6FSqWBvb6/Vbm9vj4sXL5a6zPjx45GZmYnevXtDCIEHDx5g+vTpWofYHqZWqzF79mw888wzePLJJ7XGcXV1hZOTE86ePYs333wTly5dwtatW8ucb2FhIQoLCzX3S4LX33//DaVSWeG66xqlUon8/HxkZWXB3Nzc0NOpVsZUK2Bc9bLW+suY6mWtVSM3NxcAIIQov6MwkNTUVAFAHDlyRKv9jTfeEF5eXqUus2/fPmFvby++/vprcfbsWbF161bh4uIiFi9eXGr/6dOnC1dXV3Hjxo1y55KUlCQAiCtXrpTZJyIiQgDgjTfeeOONN97qwe1R2UAmxKMiVPUoKiqClZUVNm/ejBEjRmjag4KCkJ2djR07dugs06dPH/To0QMfffSRpm3t2rWYNm0a7t27BxOTf48YhoaGYseOHTh48CBatWpV7lzy8vLQsGFDJCQkwNfXt9Q+0j1IarUaf//9N5o1awaZTFbRsuucnJwcuLi44MaNG7C2tjb0dKqVMdUKGFe9rLX+MqZ6WWvVEEIgNzcXTk5OWrlBymCH2ORyOTw9PZGUlKQJSGq1GklJSQgNDS11mfz8fJ1iTP/3q6IlOU8IgZkzZ2Lbtm3Yv3//I8MRAJw+fRoA4OjoWGYfCwsLWFhYaLXZ2Ng8cuz6wtraut6/IUsYU62AcdXLWusvY6qXtT6+xo0bP7KPQa9iCwsLQ1BQELp37w4vLy9ER0cjLy9Pc1XbxIkT4ezsjKioKACAv78/lixZgm7dusHb2xtXrlzBggUL4O/vrwlKISEhWLduHXbs2IFGjRohPT0dQPGTYWlpiatXr2LdunXw8/NDs2bNcPbsWcyZMwd9+/ZFly5dDPNEEBERUa1i0IA0ZswY3LlzBwsXLkR6ejq6du2KhIQEzYnbKSkpWnuMwsPDIZPJEB4ejtTUVNjZ2cHf3x/vvfeeps+KFSsAFH8Z5MNiY2MxadIkyOVy7NmzRxPGXFxcEBgYiPDw8OovmIiIiOoEgwYkoPhcobIOqe3fv1/rvpmZGSIiIhAREVHmeI86pcrFxQUHDhzQe57GysLCAhERETqHF+sjY6oVMK56WWv9ZUz1staaZbCTtImIiIhqK4P/FhsRERFRbcOARERERCTBgEREREQkwYBEREREJMGAZMSioqLw9NNPo1GjRmjevDlGjBiBS5culbvM6tWrIZPJtG4KhaKGZlx5kZGROvNu3759ucts2rQJ7du3h0KhQOfOnfHjjz/W0Gwfn5ubm069MpkMISEhpfavS9v14MGD8Pf3h5OTE2QyGbZv3671uBACCxcuhKOjIywtLeHj44PLly8/ctzly5fDzc0NCoUC3t7emh/FNqTyalUqlXjzzTfRuXNnNGjQAE5OTpg4cSJu3bpV7piVeS/UlEdt20mTJunMfciQIY8ct65tWwClvn9lMpnWL0lI1dZtW5HPmoKCAoSEhKBZs2Zo2LAhAgMDcfv27XLHrex7vaIYkIzYgQMHEBISgmPHjiExMRFKpRKDBw9GXl5euctZW1sjLS1Nc7t+/XoNzfjxdOrUSWvehw8fLrPvkSNHMG7cOEyePBmnTp3CiBEjMGLECJw7d64GZ1x5v/zyi1atiYmJAIAXXnihzGXqynbNy8uDh4cHli9fXurjH374IT777DOsXLkSx48fR4MGDeDr64uCgoIyx4yPj0dYWBgiIiJw8uRJeHh4wNfXFxkZGdVVRoWUV2t+fj5OnjyJBQsW4OTJk9i6dSsuXbqE559//pHj6vNeqEmP2rYAMGTIEK25r1+/vtwx6+K2BaBVY1paGmJiYiCTyRAYGFjuuLVx21bks2bOnDnYuXMnNm3ahAMHDuDWrVsICAgod9zKvNf1Uu4vtZFRycjIEADEgQMHyuwTGxsrGjduXHOTqiIRERHCw8Ojwv1Hjx4thg0bptXm7e0tXn755SqeWc2YNWuWcHd3F2q1utTH6+p2BSC2bdumua9Wq4WDg4P46KOPNG3Z2dnCwsJCrF+/vsxxvLy8REhIiOa+SqUSTk5OIioqqlrmXRnSWktz4sQJAUBcv369zD76vhcMpbR6g4KCxPDhw/Uap75s2+HDh4tnn3223D51ZdtKP2uys7OFubm52LRpk6bPhQsXBABx9OjRUseo7HtdH9yDRBp3794FADRt2rTcfvfu3YOrqytcXFwwfPhw/P777zUxvcd2+fJlODk5oXXr1pgwYQJSUlLK7Hv06FH4+Photfn6+uLo0aPVPc0qV1RUhLVr1+Kll14q94eV6+p2fdiff/6J9PR0rW3XuHFjeHt7l7ntioqKkJycrLWMiYkJfHx86tz2vnv3LmQy2SN/J1Kf90Jts3//fjRv3hzt2rXDjBkzkJWVVWbf+rJtb9++jR9++AGTJ09+ZN+6sG2lnzXJyclQKpVa26l9+/Zo2bJlmdupMu91fTEgEYDiHwqePXs2nnnmGTz55JNl9mvXrh1iYmKwY8cOrF27Fmq1Gr169cLNmzdrcLb68/b2xurVq5GQkIAVK1bgzz//RJ8+fZCbm1tq//T0dM1P3pSwt7fX/LZfXbJ9+3ZkZ2dj0qRJZfapq9tVqmT76LPtMjMzoVKp6vz2LigowJtvvolx48aV++Oe+r4XapMhQ4bg22+/RVJSEv773//iwIEDGDp0KFQqVan968u2/eabb9CoUaNHHnKqC9u2tM+a9PR0yOVynWBf3naqzHtdXwb/qRGqHUJCQnDu3LlHHq/u2bMnevbsqbnfq1cvdOjQAV9++SXeeeed6p5mpQ0dOlTzd5cuXeDt7Q1XV1ds3LixQv9XVpetWrUKQ4cOhZOTU5l96up2pWJKpRKjR4+GEELze5RlqcvvhbFjx2r+7ty5M7p06QJ3d3fs378fAwcONODMqldMTAwmTJjwyAsn6sK2rehnTW3APUiE0NBQfP/999i3bx9atGih17Lm5ubo1q0brly5Uk2zqx42NjZo27ZtmfN2cHDQuYLi9u3bcHBwqInpVZnr169jz549mDJlil7L1dXtWrJ99Nl2tra2MDU1rbPbuyQcXb9+HYmJieXuPSrNo94LtVnr1q1ha2tb5tzr+rYFgEOHDuHSpUt6v4eB2rdty/qscXBwQFFREbKzs7X6l7edKvNe1xcDkhETQiA0NBTbtm3D3r170apVK73HUKlU+O233+Do6FgNM6w+9+7dw9WrV8ucd8+ePZGUlKTVlpiYqLWXpS6IjY1F8+bNMWzYML2Wq6vbtVWrVnBwcNDadjk5OTh+/HiZ204ul8PT01NrGbVajaSkpFq/vUvC0eXLl7Fnzx40a9ZM7zEe9V6ozW7evImsrKwy516Xt22JVatWwdPTEx4eHnovW1u27aM+azw9PWFubq61nS5duoSUlJQyt1Nl3uuVmTgZqRkzZojGjRuL/fv3i7S0NM0tPz9f0+fFF18U8+bN09xftGiR2LVrl7h69apITk4WY8eOFQqFQvz++++GKKHCXnvtNbF//37x559/ip9//ln4+PgIW1tbkZGRIYTQrfPnn38WZmZm4uOPPxYXLlwQERERwtzcXPz222+GKkFvKpVKtGzZUrz55ps6j9Xl7ZqbmytOnTolTp06JQCIJUuWiFOnTmmu3Prggw+EjY2N2LFjhzh79qwYPny4aNWqlbh//75mjGeffVYsW7ZMc3/Dhg3CwsJCrF69Wpw/f15MmzZN2NjYiPT09Bqv72Hl1VpUVCSef/550aJFC3H69Gmt93BhYaFmDGmtj3ovGFJ59ebm5orXX39dHD16VPz5559iz5494qmnnhJPPPGEKCgo0IxRH7Ztibt37worKyuxYsWKUseoK9u2Ip8106dPFy1bthR79+4Vv/76q+jZs6fo2bOn1jjt2rUTW7du1dyvyHv9cTAgGTEApd5iY2M1ffr16yeCgoI092fPni1atmwp5HK5sLe3F35+fuLkyZM1P3k9jRkzRjg6Ogq5XC6cnZ3FmDFjxJUrVzSPS+sUQoiNGzeKtm3bCrlcLjp16iR++OGHGp7149m1a5cAIC5duqTzWF3ervv27Sv1dVtSj1qtFgsWLBD29vbCwsJCDBw4UOc5cHV1FREREVpty5Yt0zwHXl5e4tixYzVUUdnKq/XPP/8s8z28b98+zRjSWh/1XjCk8urNz88XgwcPFnZ2dsLc3Fy4urqKqVOn6gSd+rBtS3z55ZfC0tJSZGdnlzpGXdm2FfmsuX//vnjllVdEkyZNhJWVlRg5cqRIS0vTGefhZSryXn8csv+tlIiIiIj+h+cgEREREUkwIBERERFJMCARERERSTAgEREREUkwIBERERFJMCARERERSTAgEREREUkwIBERVRGZTIbt27cbehpEVAUYkIioXpg0aRJkMpnObciQIYaeGhHVQWaGngARUVUZMmQIYmNjtdosLCwMNBsiqsu4B4mI6g0LCws4ODho3Zo0aQKg+PDXihUrMHToUFhaWqJ169bYvHmz1vK//fYbnn32WVhaWqJZs2aYNm0a7t27p9UnJiYGnTp1goWFBRwdHREaGqr1eGZmJkaOHAkrKys88cQT+O6776q3aCKqFgxIRGQ0FixYgMDAQJw5cwYTJkzA2LFjceHCBQBAXl4efH190aRJE/zyyy/YtGkT9uzZoxWAVqxYgZCQEEybNg2//fYbvvvuO7Rp00ZrHYsWLcLo0aNx9uxZ+Pn5YcKECfj7779rtE4iqgJV9rO3REQGFBQUJExNTUWDBg20bu+9954QoviXwKdPn661jLe3t5gxY4YQQoivvvpKNGnSRNy7d0/z+A8//CBMTEw0vxjv5OQk3n777TLnAECEh4dr7t+7d08AED/99FOV1UlENYPnIBFRvTFgwACsWLFCq61p06aav3v27Kn1WM+ePXH69GkAwIULF+Dh4YEGDRpoHn/mmWegVqtx6dIlyGQy3Lp1CwMHDix3Dl26dNH83aBBA1hbWyMjI6OyJRGRgTAgEVG90aBBA51DXlXF0tKyQv3Mzc217stkMqjV6uqYEhFVI56DRERG49ixYzr3O3ToAADo0KEDzpw5g7y8PM3jP//8M0xMTNCuXTs0atQIbm5uSEpKqtE5E5FhcA8SEdUbhYWFSE9P12ozMzODra0tAGDTpk3o3r07evfujbi4OJw4cQKrVq0CAEyYMAEREREICgpCZGQk7ty5g5kzZ+LFF1+Evb09ACAyMhLTp09H8+bNMXToUOTm5uLnn3/GzJkza7ZQIqp2DEhEVG8kJCTA0dFRq61du3a4ePEigOIrzDZs2IBXXnkFjo6OWL9+PTp27AgAsLKywq5duzBr1iw8/fTTsLKyQmBgIJYsWaIZKygoCAUFBfj000/x+uuvw9bWFqNGjaq5AomoxsiEEMLQkyAiqm4ymQzbtm3DiBEjDD0VIqoDeA4SERERkQQDEhEREZEEz0EiIqPAswmISB/cg0REREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTx/7Q5tbm4c2yCAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data",
     "jetTransient": {
      "display_id": null
     }
    }
   ],
   "execution_count": 119
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
